home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1996 / MacHack 1996.toast / Hacks / Hacks ’91 / MS Works Merge Enhancer / THyperXcmd.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-10-29  |  4.3 KB  |  141 lines  |  [TEXT/MPS ]

  1. /************************************************************
  2.  
  3.   Modified from HyperXcmd.h in MPW 3.0 Interfaces
  4.   Written by:    Jeff E Mandel MD MS
  5.                   Department of Anesthesia
  6.                 Tulane University School of Medicine
  7.                 1430 Tulane Ave
  8.                 New Orleans, LA  70112
  9.                 
  10.                 (504) 588 5903
  11.                 AS01MEF@VM.TCS.TULANE.EDU
  12.                 AS01MEF AT TCSVM (Bitnet)
  13.   All rights reserved. This code may not be used for commercial distributed software
  14.   without the prior authorization of the author. No warranty as to suitability of this
  15.   software is made, and no liability for adverse effects is assumed by the author.
  16.  
  17.     THyperXCmd.h
  18.     Class definition file for HyperCard XCMDs and XFCNs in C++.
  19.  
  20.  
  21.     Portions Copyright Apple Computer, Inc.  1987-1988 
  22.     All rights reserved
  23.  
  24. ************************************************************/
  25.  
  26.  
  27. #ifndef __TXcmdPtrDefs__
  28. #define __TXcmdPtrDefs__
  29.  
  30. #include <Types.h>
  31. #include    <ToolUtils.h>
  32. #include    <Packages.h>
  33.  
  34. typedef void (*MyProcPtr) ();
  35.  
  36. #include <TString.h>
  37.  
  38. /* result codes */
  39.  
  40. #define xresSucc 0
  41. #define xresFail 1
  42. #define xresNotImp 2
  43.  
  44.   /* request codes */
  45. #define    xreqSendCardMessage        1 
  46. #define    xreqEvalExpr            2 
  47. #define    xreqStringLength        3 
  48. #define    xreqStringMatch            4 
  49. #define xreqSendHCMessage         5
  50. #define    xreqZeroBytes             6 
  51. #define    xreqPasToZero            7 
  52. #define    xreqZeroToPas            8 
  53. #define    xreqStrToLong            9 
  54. #define    xreqStrToNum            10 
  55. #define    xreqStrToBool            11 
  56. #define    xreqStrToExt            12 
  57. #define    xreqLongToStr            13 
  58. #define    xreqNumToStr            14 
  59. #define    xreqNumToHex            15 
  60. #define    xreqBoolToStr            16 
  61. #define    xreqExtToStr            17 
  62. #define    xreqGetGlobal            18 
  63. #define    xreqSetGlobal            19 
  64. #define    xreqGetFieldByName        20 
  65. #define    xreqGetFieldByNum        21 
  66. #define    xreqGetFieldByID        22 
  67. #define    xreqSetFieldByName        23 
  68. #define    xreqSetFieldByNum        24 
  69. #define    xreqSetFieldByID        25 
  70. #define    xreqStringEqual           26 
  71. #define    xreqReturnToPas           27 
  72. #define    xreqScanToReturn          28 
  73. #define    xreqScanToZero            39   /* was suppose to be 29!  Oops! */
  74.  
  75. class TXCMDBlock {
  76.     short paramCount;
  77.     Handle params[16];
  78.     Handle returnValue;
  79.     Boolean passFlag;
  80.     void (*entryPoint)();   /*to call back to HyperCard*/
  81.     short request;
  82.     short result;
  83.     long inArgs[8];
  84.     long outArgs[4];
  85. public:
  86.     pascal long StringLength(StringPtr strPtr);
  87.     pascal void SendCardMessage(StringPtr msg); 
  88.     pascal void SendHCMessage(StringPtr msg); 
  89.     pascal Handle GetGlobal(StringPtr globName); 
  90.     pascal void SetGlobal(StringPtr globName,Handle globValue); 
  91.     pascal Handle GetFieldByID(Boolean cardFieldFlag,short fieldID); 
  92.     pascal Handle GetFieldByName(Boolean cardFieldFlag,StringPtr fieldName); 
  93.     pascal Handle GetFieldByNum(Boolean cardFieldFlag,short fieldNum); 
  94.     pascal void SetFieldByID(Boolean cardFieldFlag,short fieldID,
  95.         Handle fieldVal); 
  96.     pascal void SetFieldByName(Boolean cardFieldFlag,StringPtr fieldName,
  97.         Handle fieldVal); 
  98.     pascal void SetFieldByNum(Boolean cardFieldFlag,short fieldNum,
  99.         Handle fieldVal); 
  100.     pascal Handle EvalExpr(StringPtr expr);
  101.     pascal Boolean StrToBool(char *str);
  102.     pascal long StrToLong(char *str);
  103.     pascal void LongToStr(long num,StringPtr mystr);
  104.     pascal void ZeroToPas(char *zeroStr, StringPtr pasStr);
  105.     pascal Handle PasToZero(StringPtr pasStr);
  106. /*
  107.   Added functions by JEM
  108. */
  109.  
  110.     pascal void SendCardMessageC(CString msg); 
  111.     pascal Handle GetFieldByNameC(Boolean cardFieldFlag,CString fieldName); 
  112.     pascal void SetFieldByNameC(Boolean cardFieldFlag,CString fieldName,
  113.         Handle fieldVal); 
  114.  
  115.     inline Boolean checkArgNums (short expected) 
  116.         {return (paramCount==expected);};
  117.     Boolean informArgNums(char *theXCMD, short expected);
  118.     
  119.     void SignalReturnStatus (StringPtr theMessage);
  120.     void SignalReturnStatus (Handle theMessage);
  121.     void SignalReturnStatus (Ptr theMessage);
  122.     void SignalReturnStatus (CString theMessage);
  123.     Ptr RecoverStringArg(short theNum);
  124.     Boolean RecoverBooleanArg(short theNum);
  125.     void CopyStringArg(short theNum, StringPtr theString);
  126.     void CopyStringArg(short theNum, Ptr theString);
  127.     void SignalFatalError(char *msg);
  128.     void SignalFatalError(CString msg);
  129.     
  130.     CString CStringArg(short theNum);
  131.     long RecoverLongArg(short theNum);
  132.     long RecoverLongGlobal(StringPtr globName);
  133.     void SetLongGlobal(StringPtr globName, long theVal);
  134.     inline Handle RecoverHandleArg(short theNum)
  135.         {return (Handle) params[theNum];};
  136.     void SignalFileErr(OSErr theErr);
  137.  
  138. };
  139.  
  140. #endif
  141.